Digital Image Capture Under Conditions Of Varying Light Intensity

ABSTRACT

An approach is provided to adjust a camera shutter lag. In the approach, data is collected that corresponds to an ambient light found in a physical environment with the ambient light being controlled using a pulse-width modulation (PWM). The pulse-width modulation corresponds to a PWM timing model. When an exposure request is received, the camera shutter lag is calculated using the PWM timing model. The calculated shutter lag is based on a future point in time at which the ambient light of the physical environment is predicted to be at a selected light output level, such as a power level selected by the user of a camera. When the calculated camera shutter lag has expired, a shutter of the camera is opened causing a camera lens to be exposed that results in a captured exposure.

TECHNICAL FIELD

The present disclosure relates to an approach that captures digitalimages in an environment where pulse-width-modulation (PWM) is used todim ambient light.

BACKGROUND OF THE INVENTION

Traditional devices for architectural lighting (e.g., indoor residentiallighting, commercial lighting, theatrical stage lighting, etc.) use hottungsten filaments as the light-emitting source. Such devices arecommonly being replaced with ones that use newer technology, in whichthe hot tungsten filament is replaced by a light emitter which is moreenergy-efficient, or offers more flexibility in features andperformance, or both. One such technology gaining rapid adoption is LED(Light-Emitting Diode) lighting. While offering advantages over tungstenlighting as a light source for human vision, LED lights pose significantchallenges for digital image capture, both in still photography and invideography. Among these challenges is the variation in light intensitywith LED-based lighting.

A common technique for dimming LED lights is the use of pulse-widthmodulation (PWM.) When PWM is used to dim an LED light, its effect is tocause the LED to cycle between full light output and zero light output.This cycling between “full on” and “full off” is done at a frequencyhigh enough to be invisible to the human eye, and is perceived by humansas a reduction in light intensity where the light appears to be dimmed.However, such cycling can be captured by modern digital imaging systemsthat use a shutter to define specific exposure periods with the exposureperiods typically being a small fraction of a second. For example, whenan LED light is dimmed using PWM such that it is cycling between “fullon” and “full off” 100 times per second: 5 ms on, then 5 ms off, then 5ms on, etc. If a digital camera is used to capture a photo using ashutter speed of 1/1000 s (1 ms), then depending on the exact time theshutter is tripped, the exposure might be made during a period when theLED is on, or a period when the LED is off. These two cases would resultin very different exposures. This phenomenon imposes limits on shutterspeed which can be used when doing still photography or videographyunder LED lighting. Depending on the specific circumstances, suchlimitations can be inconvenient, or they can be insurmountable obstaclesto good image capture. Example: if one is photographing sports, arelatively high shutter speed (e.g., 1/1000 s) is required to “freeze”subject motion. If the above-described phenomenon imposes a relativelylow limit on the shutter speed which can be used (e.g., 1/100 s), thenproducing high-quality action photographs will be impossible.

SUMMARY

An approach is provided to adjust a camera shutter lag. In the approach,data is collected that corresponds to an ambient light found in aphysical environment with the ambient light being controlled (e.g.,dimmed, etc.) using pulse-width modulation (PWM). The pulse-widthmodulation corresponds to a PWM timing model. When an exposure requestis received, a camera shutter lag is calculated using the PWM timingmodel. The calculated shutter lag is based on a future point in time atwhich the ambient light of the physical environment is predicted to beat a selected light output level, such as a power level selected by theuser of a camera. When the calculated camera shutter lag has expired, ashutter of the camera is opened causing a photosensitive sensor to beexposed that results in a captured exposure.

The foregoing is a summary and thus contains, by necessity,simplifications, generalizations, and omissions of detail; consequently,those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the present invention, asdefined solely by the claims, will become apparent in the non-limitingdetailed description set forth below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may be better understood, and its numerousobjects, features, and advantages made apparent to those skilled in theart by referencing the accompanying drawings, wherein:

FIG. 1 is a block diagram of a data processing system in which themethods described herein can be implemented;

FIG. 2 is a diagram of a camera capturing an image of a subject in anenvironment where LED “pulsed” lighting is utilized;

FIG. 3 is a flowchart showing steps performed to capture images inpulsating light conditions;

FIG. 4 is a flowchart showing steps performed to analyze ambient lightconditions where pulsating lighting is utilized; and

FIG. 5 is a flowchart showing steps performed to calibrate the camerabased on the lighting conditions.

DETAILED DESCRIPTION

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the disclosure. Theembodiment was chosen and described in order to best explain theprinciples of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

As will be appreciated by one skilled in the art, aspects of the presentdisclosure may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present disclosure may take theform of an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present disclosure may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent disclosure may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present disclosure are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The following detailed description will generally follow the summary ofthe disclosure, as set forth above, further explaining and expanding thedefinitions of the various aspects and embodiments of the disclosure asnecessary.

FIG. 1 illustrates information handling system 100, which is asimplified example of a computer system capable of performing thecomputing operations described herein. Information handling system 100includes one or more processors 110 coupled to processor interface bus112. Processor interface bus 112 connects processors 110 to Northbridge115, which is also known as the Memory Controller Hub (MCH). Northbridge115 connects to system memory 120 and provides a means for processor(s)110 to access the system memory. Graphics controller 125 also connectsto Northbridge 115. In one embodiment, PCI Express bus 118 connectsNorthbridge 115 to graphics controller 125. Graphics controller 125connects to display device 130, such as a computer monitor.

Northbridge 115 and Southbridge 135 connect to each other using bus 119.In one embodiment, the bus is a Direct Media Interface (DMI) bus thattransfers data at high speeds in each direction between Northbridge 115and Southbridge 135. In another embodiment, a Peripheral ComponentInterconnect (PCI) bus connects the Northbridge and the Southbridge.Southbridge 135, also known as the I/O Controller Hub (ICH) is a chipthat generally implements capabilities that operate at slower speedsthan the capabilities provided by the Northbridge. Southbridge 135typically provides various busses used to connect various components.These busses include, for example, PCI and PCI Express busses, an ISAbus, a System Management Bus (SMBus or SMB), and/or a Low Pin Count(LPC) bus. The LPC bus often connects low-bandwidth devices, such asboot ROM 196 and “legacy” I/O devices (using a “super I/O” chip). The“legacy” I/O devices (198) can include, for example, serial and parallelports, keyboard, mouse, and/or a floppy disk controller. The LPC busalso connects Southbridge 135 to Trusted Platform Module (TPM) 195.Other components often included in Southbridge 135 include a DirectMemory Access (DMA) controller, a Programmable Interrupt Controller(PIC), and a storage device controller, which connects Southbridge 135to nonvolatile storage device 185, such as a hard disk drive, using bus184. ExpressCard 155 is a slot that connects hot-pluggable devices tothe information handling system. ExpressCard 155 supports both PCIExpress and USB connectivity as it connects to Southbridge 135 usingboth the Universal Serial Bus (USB) the PCI Express bus. Southbridge 135includes USB Controller 140 that provides USB connectivity to devicesthat connect to the USB. These devices include webcam (camera) 150,infrared (IR) receiver 148, keyboard and trackpad 144, and Bluetoothdevice 146, which provides for wireless personal area networks (PANs).USB Controller 140 also provides USB connectivity to other miscellaneousUSB connected devices 142, such as a mouse, removable nonvolatilestorage device 145, modems, network cards, ISDN connectors, fax,printers, USB hubs, and many other types of USB connected devices. Whileremovable nonvolatile storage device 145 is shown as a USB-connecteddevice, removable nonvolatile storage device 145 could be connectedusing a different interface, such as a Firewire interface, etcetera.

Wireless Local Area Network (LAN) device 175 connects to Southbridge 135via the PCI or PCI Express bus 172. LAN device 175 typically implementsone of the IEEE 0.802.11 standards of over-the-air modulation techniquesthat all use the same protocol to wireless communicate betweeninformation handling system 100 and another computer system or device.Optical storage device 190 connects to Southbridge 135 using Serial ATA(SATA) bus 188. Serial ATA adapters and devices communicate over ahigh-speed serial link. The Serial ATA bus also connects Southbridge 135to other forms of storage devices, such as hard disk drives. Audiocircuitry 160, such as a sound card, connects to Southbridge 135 via bus158. Audio circuitry 160 also provides functionality such as audioline-in and optical digital audio in port 162, optical digital outputand headphone jack 164, internal speakers 166, and internal microphone168. Ethernet controller 170 connects to Southbridge 135 using a bus,such as the PCI or PCI Express bus. Ethernet controller 170 connectsinformation handling system 100 to a computer network, such as a LocalArea Network (LAN), the Internet, and other public and private computernetworks.

While FIG. 1 shows one information handling system, an informationhandling system may take many forms. For example, an informationhandling system may take the form of a desktop, server, portable,laptop, notebook, or other form factor computer or data processingsystem. In addition, an information handling system may take other formfactors such as a hand-held or stationary camera, or a digitalsingle-lens reflex camera (dSLR).

FIG. 2 is a diagram of a camera capturing an image of a subject in anenvironment where LED “pulsed” lighting is utilized. Digital single-lensreflex camera (dSLR) 200 captures images of a subject in a physicalenvironment that has ambient light controlled (e.g., dimmed, etc.) usingpulse-width modulation (PWM). As used herein, PWM includes traditionalpulse-width modulation as well as other modulation techniques (e.g.,binary code modulation, etc.) used to dim or control lights by rapidlyturning the lights on and off to create the light intensity. Also, asused herein, “ambient light” refers to any available light source, suchas room lighting, or theatrical stage lighting, that is not controlledby the user. For example, the light produced by the camera's flash unitwould not be “ambient light.” The camera collects data corresponding tothe ambient light and creates a pulse-width modulation timing model thatdescribes the intensity of light as a function of time (see, e.g., FIG.4, graph 460 for an example of how a PWM timing model might appear). Inone embodiment, dSLR camera 200 includes photosensitive array of lightmetering elements 220 located behind shutter 230. As used herein,“shutter” includes any mechanism by which the timing and duration of theexposure of a photosensitive sensor is controlled, including but notlimited to mechanical devices and electronic control circuits. For easeof description, the following discussion is written in words descriptiveof mechanical shutters, but those skilled in the art will recognize theapplicability of these concepts to other methods of controlling theexposure of photosensitive sensors. Shutter 230 can be opened to allowambient light 210 to reach photosensitive array of light meteringelements 220. dSLR 200 includes a processor (see, e.g., processor 100shown in FIG. 1) that controls the shutter and collects the ambientlight data by sampling the ambient light that reaches the photosensitivearray of light metering elements. The sample is then used to create thePWM timing model, such as the model shown in FIG. 4, element 460.

After the PWM timing model has been created, the user (e.g., aphotographer, automated process, etc.) of the dSLR issues a request tocapture an exposure of subject 210. The camera shutter lag iscalculated, using the PWM timing model created as described above, basedon a future point in time at which the ambient light of the physicalenvironment is predicted to be at a selected light output level. Theselected light output level depends on the characteristics of the imagethat the user wishes to capture. In one embodiment, a calibration istaken as shown in FIG. 5. During calibration, multiple exposures aretaken of a sample object with the various exposures being taken atdifferent points of the PWM timing model. The user then selects one ofthe sample images corresponding to the desired image characteristics.

For example, the user may select a sample image that falls ahalf-millisecond past the beginning of a high signal segment of the PWMtiming model. When an actual image is taken, the calculation willidentify a shutter lag that makes the shutter open when the ambientlight conditions are predicted to again be a half-millisecond past thebeginning of the high signal segment of the PWM model. In this manner,the actual exposures taken by the user generally have the same PWMlighting conditions as the calibration sample selected by the user.Other techniques are provided for “high light” and “low light”auto-settings. In the “high light” automatic setting, the user simplyselects that a “high light” is desired when PWM ambient lighting isdetected. The “high light” setting results in the selected light outputlevel being set to a beginning point of an upcoming high signal segmentof the PWM timing model. Likewise, a “low light” automatic setting isalso provided that can be selected by the user with the user selectingthat a “low light” is desired when PWM ambient lighting is detected. The“low light” setting results in the selected light output level being setto a beginning point of an upcoming low signal segment of the PWM timingmodel.

FIG. 3 is a flowchart showing steps performed to capture images inpulsating light conditions. Processing commences at 300 whereupon, atpredefined process 310, the ambient light in the physical environmentare analyzed (see FIG. 4 and corresponding text for processing details).During the analysis, data is collected pertaining to the ambient lightconditions and, if pulse-width modulation (PWM) lighting is detected, aPWM timing model is generated and stored in memory area 450 (see FIG. 4,element 460, for an example of a PWM timing model).

At step 315, the PWM timing model stored in memory area 450 is retrievedand the ambient light data is analyzed. At predefined process 320, theuser can optionally select one of a multitude of sample images taken inthe ambient light with each of the sample images taken at differentpoints in the PWM timing model with the selected image being used tocalculate how far along the high or low signal segment actual exposuresshould be taken based on the image characteristics desired by the user.As described above, automatic settings are also provided so that theuser can select to have images taken at a “high light” setting (at thebeginning of a high signal segment in the PWM timing model) or at a “lowlight” setting (at the beginning of a low signal segment in the PWMtiming model).

A decision is made as to whether the dSLR has detected that the ambientlight of the physical environment is controlled using PWM (decision325). Regardless of whether the dSLR detects that ambient light of thephysical environment is controlled using PWM, the intensity of theambient light is taken into account by the user (e.g., a photographer)in order to set the camera settings such as the shutter speed, lensaperture, and sensor sensitivity (ISO speed). Returning to decision 325,if PWM controlled lighting is detected, then decision 325 branches tothe “yes” branch. A decision is then made as to whether the shutterspeed setting of the dSLR is faster than the rate of modulation in thePWM ambient lighting (decision 330). If the shutter speed setting of thedSLR is faster than the rate of modulation in the PWM ambient lighting,then decision 330 branches to the “yes” branch to take an exposure thattakes the PWM ambient lighting into account.

A decision is made as to whether the user has calibrated the dSLR byselecting one of a multitude of exposures taken in the ambient light asa model or if the user has selected an automatic setting (auto-set) ofthe dSLR (decision 335). If the user has calibrated the dSLR, thendecision 335 branches to the “calibrate” branch whereupon, at step 340,the system retrieves the user-selected precise shutter lag based on thesample image that was selected by the user during the process shown inFIG. 5. The selected PWM position on the PWM timing model correspondingto the user's desired shutter lag is retrieved from memory area 590. Atstep 345, the system calculates the precise shutter lag so that theexposure that is about to be taken will occur at the position in the PWMtiming model that corresponds to the position of the sample image thatthe user selected during calibration processing (see FIG. 5 andcorresponding text for calibration processing details). At step 375, theprecise shutter lag is performed. The precise shutter lag is a timedelay so that the shutter of the dSLR is opened after the calculatedcamera shutter lag has expired. At step 390, when the camera shutter isopened, the camera sensor is exposed and results in a captured exposurein the same PWM lighting conditions as were present during the taking ofthe sample image.

Returning to decision 335, if the user has selected an automaticsetting, then decision 335 branches to the “auto-set” branch. A decisionis made as to whether the “high light” or the “low light” automaticsetting has been selected by the user (decision 350). If the “highlight” setting has been selected, then decision 350 branches to the“yes” branch whereupon, at step 360, the system calculates a preciseshutter lag so that the upcoming exposure occurs at the beginning of anupcoming high signal segment of the PWM. For an example of such highsignal segment points, see points 470, 471, and 472 in timing model 460that is shown in FIG. 4. On the other hand, if the “low light” settinghas been selected, then decision 350 branches to the “no” branchwhereupon, at step 370, the system calculates a precise shutter lag sothat the upcoming exposure occurs at the beginning of an upcoming lowsignal segment of the PWM. For an example of such low signal segmentpoints, see points 480 and 480 in timing model 460 that is shown in FIG.4. At step 375, the precise shutter lag is performed. The preciseshutter lag is a time delay so that the shutter of the dSLR is openedafter the calculated camera shutter lag has expired. At step 390, whenthe camera shutter is opened, the camera sensor is exposed and resultsin a captured exposure in the same PWM lighting conditions as werepresent during the taking of the sample image.

Returning to decisions 325 and 330, if PWM controlled ambient lightingwas not detected (decision 325 branching to the “no” branch) or if theshutter speed is slower than the modulation rate of the detected PWM inthe PWM timing model for the ambient lighting conditions (decision 330branching to the “no” branch), then, at step 380, no shutter lag is usedas a shutter lag in these situations is not needed and, at step 390, theexposure is captured by opening the shutter and then closing theshutter.

FIG. 4 is a flowchart showing steps performed to analyze ambient lightconditions where pulsed lighting is utilized. The ambient light analysisroutine commences at 400 with the routine having been called atpredefined process 310 shown in FIG. 3. At step 410, the system allowsambient light to reach a photosensitive array of light metering elementsincluded in the dSLR. At step 420, the photosensitive array of lightmetering elements gather ambient light using a fast data sampling rate(e.g., sampling every millisecond, etc.). The sampled ambient light datais stored in memory area 430. In one embodiment, the photosensitivearray of light metering elements is incorporated in the dSLR and isaccessed by a routine that opens the shutter and allows the ambientlight to reach the photosensitive array of light metering elements. Inanother embodiment, the photosensitive array of light metering elementsis a separate sensor array, such as an external device, that suppliesthe sampled ambient light data to the dSLR and to the processes thatprovide a shutter lag so that the lens is exposed at a desired positionin the PWM timing model.

At step 440, the process analyzes the sampled ambient light data storedin memory area 430 in order to create a PWM timing model of the pulsewidth modulation (PWM) that is currently being used to control (dim) theambient lighting in the physical environment where the dSLR isoperating. The PWM timing model is stored in memory area 450 for futureuse by the processes shown in both FIG. 3 and FIG. 5 to identifypositions on the PWM timing model where exposures are to be taken (FIG.3) and where a selected image used in calibration was taken (FIG. 5).Processing then returns to the calling routine (see FIG. 3) at 494.

An example of a PWM timing model corresponding to ambient light of aphysical environment is shown at 460. The y-axis shows a light outputlevel and the x-axis shows various points in time. In the example shown,the high signal segment has a value of ten units and the low signalsegment has a value of zero units (e.g., the pulsing being between “ten”and off, etc.). In the example, the high signal segment and the lowsignal segment are both ten milliseconds in duration. If the lightcontrol (e.g., a dimmer, etc.) is set to a “brighter” setting then, oneway the brighter light output can be achieved is by lengthening the highsignal segments and/or shortening the low signal segments. Conversely,to provide a “dimmer” setting, the dimmer light output can be achievedis by shortening the high signal segments and/or lengthening the lowsignal segments. Points 470, 471, and 472 show the beginning points ofhigh signal segments that might be used when the user has “auto-set” thedSLR to use a “high light” setting. Points 480 and 481 show thebeginning points of low signal segments that might be used when the userhas “auto-set” the dSLR to use a “low light” setting.

FIG. 5 is a flowchart showing steps performed to calibrate the camerabased on the lighting conditions. Processing of the calibration routinecommences at 500 whereupon, at step 510, a first position on thepulse-width modulation (PWM) timing model is selected. At step 520, asample exposure is taken using the dSLR at the selected position on thePWM timing model in the ambient light conditions of the physicalenvironment. The position on the PWM timing model is retrieved frommemory area 450 where the PWM timing model is stored.

Calibration images and data 525 include both sample images taken at step520 as well as metadata regarding the sample images with the metadatastored in memory area 535 and indicating where in the PWM timing modeleach of the sample images was taken. A decision is made as to whethermore sample exposures are to be taken (decision 540). In one embodiment,enough sample images are taken to show the characteristics of imagestaken throughout the various positions in the high and low signalsegments in the PWM timing model. If more exposures are being captured,then decision 540 branches to the “yes” branch whereupon, at step 545,the position along the PWM timing model is incremented (e.g., by onemillisecond, etc.) and processing loops back to select the new positionand capture/store an image at the next position. This looping continuesuntil no more exposures need to be captured, at which point decision 540branches to the “no” branch.

At step 550, the sample exposures are displayed to a user of the system(e.g., a photographer, etc.). At step 560, the system prompts the userto select a sample image that has the characteristics desired by theuser. At step 570, the system receives a sample image selection from theuser. At step 575, the system retrieves the position of the selectedimage on the PWM timing model (e.g., two milliseconds after thebeginning of a high signal segment, etc.). At step 580, the positionretrieved at step 575 is retained in memory area 590 for futureretrieval and use when images are being captured so that the preciseshutter lag being used during collection of future images opens theshutter at the same place on the PWM timing model as the sample imageselected by the user. Processing then returns to the calling routine(see FIG. 3) at 595.

One of the preferred implementations of the invention is a clientapplication, namely, a set of instructions (program code) or otherfunctional descriptive material in a code module that may, for example,be resident in the random access memory of the computer. Until requiredby the computer, the set of instructions may be stored in anothercomputer memory, for example, in a hard disk drive, or in a removablememory such as an optical disk (for eventual use in a CD ROM) or floppydisk (for eventual use in a floppy disk drive). Thus, the presentinvention may be implemented as a computer program product for use in acomputer. In addition, although the various methods described areconveniently implemented in a general purpose computer selectivelyactivated or reconfigured by software, one of ordinary skill in the artwould also recognize that such methods may be carried out in hardware,in firmware, or in more specialized apparatus constructed to perform therequired method steps. Functional descriptive material is informationthat imparts functionality to a machine. Functional descriptive materialincludes, but is not limited to, computer programs, instructions, rules,facts, definitions of computable functions, objects, and datastructures.

While particular embodiments of the present invention have been shownand described, it will be obvious to those skilled in the art that,based upon the teachings herein, that changes and modifications may bemade without departing from this invention and its broader aspects.Therefore, the appended claims are to encompass within their scope allsuch changes and modifications as are within the true spirit and scopeof this invention. Furthermore, it is to be understood that theinvention is solely defined by the appended claims. It will beunderstood by those with skill in the art that if a specific number ofan introduced claim element is intended, such intent will be explicitlyrecited in the claim, and in the absence of such recitation no suchlimitation is present. For non-limiting example, as an aid tounderstanding, the following appended claims contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimelements. However, the use of such phrases should not be construed toimply that the introduction of a claim element by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim element to inventions containing only one such element,even when the same claim includes the introductory phrases “one or more”or “at least one” and indefinite articles such as “a” or “an”; the sameholds true for the use in the claims of definite articles.

What is claimed is:
 1. A method implemented by an information handlingsystem to adjust a camera shutter lag, the method comprising: collectingdata corresponding to ambient light of a physical environment, whereinthe ambient light is controlled using pulse-width modulation (PWM) andwherein the PWM corresponds to a PWM timing model; receiving an exposurerequest; in response to receiving the exposure request: calculating acamera shutter lag, using the PWM timing model, based on a future pointin time at which the ambient light of the physical environment ispredicted to be at a selected light output level; and opening a shutterof the camera after the calculated camera shutter lag has expired, theopening causing an exposure of a sensor that results in a capturedexposure.
 2. The method of claim 1 further comprising: analyzing theambient light of the physical environment prior to receiving theexposure request.
 3. The method of claim 2 wherein the analyzing furthercomprises: allowing the ambient light to reach a photosensitive array oflight metering elements; collecting the ambient light data by samplingthe ambient light reaching the photosensitive array of light meteringelements; and creating the PWM timing model based on the collectedambient light data.
 4. The method of claim 1 further comprising:detecting that the ambient light of the physical environment iscontrolled using the PWM.
 5. The method of claim 1 further comprising:prior to calculating the camera shutter lag, calibrating based on thePWM controlled ambient lighting, the calibrating comprising: creating aplurality of sample exposures, wherein each of the sample exposures istaken at a different point in the PWM timing model.
 6. The method ofclaim 5 further comprising: displaying the plurality of sample exposuresto a user; receiving a selection from the user wherein the selectioncorresponds to a selected one of the sample exposures; identifying aselected sample light output level in the PWM timing model, wherein theselected sample light output level corresponds to selected sampleexposure; and setting the selected light output level to the selectedsample light output level.
 7. The method of claim 1 further comprising:setting the selected light output level to a beginning point of anupcoming high signal segment of the PWM timing model.
 8. The method ofclaim 7 further comprising: receiving an auto-set request from a user,wherein the auto-set request corresponds to a “high light” setting. 9.The method of claim 1 further comprising: setting the selected lightoutput level to a beginning point of an upcoming low signal segment ofthe PWM timing model.
 10. The method of claim 9 further comprising:receiving an auto-set request from a user, wherein the auto-set requestcorresponds to a “low light” setting.